package com.graduation.smartparkingplatform.Service;

import com.github.pagehelper.PageInfo;
import com.graduation.smartparkingplatform.Pojo.*;

import java.util.List;

public interface SpaceService {
  // 获取Space列表
  public List<SpaceAll> getSpaceLists();

  // 获取Space列表（分页）
  public PageInfo<Space> getSpaceList(Integer page, Integer count);

  // 获取公共区域停车位
  public PageInfo<SpaceAll> getSpacePublicLists(Integer page, Integer count);

  // 获取该车位下的私有者信息
  public Private getPrivateInfo(Integer spaceId);

  // 模糊搜索Space（分页）
  public PageInfo<Space> searchSpace(Integer page, Integer count, String spaceNo, String carPlate);

  // 添加停车位
  public Boolean addSpace(SpaceNA spaceNA);

  // 修改停车位信息
  public Boolean changeInfo(SpaceNA spaceNA);

  // 修改停车位锁定状态
  public Boolean changeSpaceStatus(Integer spaceId, Boolean status);

  // 删除停车位
  public Boolean deleteSpace(Integer spaceId);

  // 添加停车车辆
  public Boolean addCar(Integer spaceId, String carPlate);

  // 判断停车位是否为私有
  public Boolean isPrivateSpaceId(Integer spaceId);

  // 获取Space不属于私有车位的列表（分页）
  public PageInfo<Space> noPrivateSpace(Integer page, Integer count);

  // 模糊搜索Space不属于私有车位的列表（分页）
  public PageInfo<Space> searchNoPrivateSpace(Integer page, Integer count, String spaceNo);

  // 获取收费规则
  public Charge getCharge(Integer spaceId);

  // 绑定计费规则
  public Boolean bindCharge(Integer spaceId, Integer chargeId);
}
